package ${package}.${moduleName}.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import ${package}.framework.common.excel.DateConverter;
import ${package}.framework.common.utils.DateUtils;
<#list importList as i>
import ${i!};
</#list>

/**
* ${tableComment}
*
* @author ${author} ${email}
* @since ${version} ${date}
*/
@Data
@Schema(description = "${tableComment}")
public class ${ClassName}VO implements Serializable, TransPojo {
private static final long serialVersionUID = 1L;

<#list fieldList as field>
    <#if field.fieldComment!?length gt 0>
    @Schema(description = "${field.fieldComment}")
        <#if field.gridItem>
            <#if field.formDict??>
    @ExcelIgnore
<#--需要实现配置 决定这里的类型 DICTIONARY/SIMPLE/RPC-->
    @Trans(type = TransType.DICTIONARY, key = "${field.formDict}", ref = "${field.attrName}Label")
            <#else>
    @ExcelProperty(value = "${field.fieldComment}"<#if field.attrType == 'Date'>, converter = DateConverter.class</#if>)
            </#if>
        </#if>
    </#if>
    <#if !field.gridItem>
    @ExcelIgnore
    </#if>
    <#if field.attrType == 'Date'>
    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
    </#if>
    private ${field.attrType} ${field.attrName};

    <#if field.fieldComment!?length gt 0 && field.gridItem && field.formDict??>
    @ExcelProperty(value = "${field.fieldComment}")
    private String ${field.attrName}Label;
    </#if>
</#list>

}